package seg2500.messagerie;

import com.lloseng.ocsf.server.ObservableOriginatorServer;
import com.lloseng.auth.*;

/**
 * La classe <code> StartServer </code> permet de 
 * demarrer le serveur de la messagerie. Elle ne contient que
 * une methode <code> main </code>.<p>
 * Usage: java StartServer <port> <DBname>
 *
 * @author Dr Robert Lagani&egrave;re
 * @version September 2003
 */
public class StartServer {

  /**
   * Demarre le serveur de la messagerie.
   *
   * @param args les parametres de demarrage.
   */
  public static void main(String[] args) {

    if (args.length != 2) {

      System.out.println("Usage: java StartServer <port> <user database>");
      System.exit(1);
    }

    try
    {
      /* Initialise le serveur. */
      ObservableOriginatorServer server= 
          new ObservableOriginatorServer(Integer.parseInt(args[0]));
  
      /*---- Module: AuthentificationManager - Equipe: Prof ----*/

    	UserDB userDB= new UserDB(args[1],false);

		AuthentificationServer auth= 
			new AuthentificationServer(server, args[1]);
		server.addObserver(auth);


      /*---- Module: Texte - Equipe: ? ----*/
		
	  seg2500.messagerie.texte.TexteManager texte = new seg2500.messagerie.texte.TexteManager(server);


	  // Creer votre module ici


      // Inscrire votre module comme observateur du Observable Originator Server
      // server.addObserver(votre_module);

	  server.addObserver(texte);

      /*-------------------------------------------------*/


      /* Place le serveur en mode d'ecoute. */ 
      server.listen();
      System.out.println("Serveur a l'ecoute...");

  }
  catch (java.io.FileNotFoundException ex)
  {

	  System.out.println("Erreur! "  + ex);

  } catch(Exception ex) {

      System.out.println("Erreur! Impossible de lancer le serveur sur le port " + args[0]+ ": " + ex);
  }
}
}
